This document was prepared with a fixed width font (Courier 10).
MultiTimer 1.02 - by David Hairston released 3/91
(freeware but not public domain)
*** Intro
MultiTimer is a simple application that displays 3 forms of time info:
(1) a Clock window showing the time of day, (2) a calender Date window showing the month and day and (3) a stop Watch timer window. Why is MultiTimer an application and not an INIT? INIT’s usually involve trap patches which can lead to init conflicts that therefore may hinder their usefulness. An application avoids such issues and can be activated and de-activated easily. It is my philosophy that the features of MultiFinder should be exploited for things like timers and screensavers and that trap patches should be avoided.
*** Using MultiTimers Common Features
The Clock and Date functions are very simple and don’t really need an explanation. The Watch function is not as obvious but it should be simple once you’ve read thru this document.
All MultiTimer functions share these features: a new timer window is created from the File menu using the New Timer submenu. If the timer is already open then it is merely brought to the front. The front timer window is closed using the File menus Close xxxx entry, where xxxx will be the name of the front timer window or “DA” if a desk accessory is open and in front. Menu key equivalents may also be used. MultiTimer windows can be positioned anywhere on the desktop by simply dragging them by their _content_ or display rectangle. The MultiTimer windows do not have typical title bars and drag regions. Windows are restored to the desktop if they were placed extremely when MultiTimer was quit and they would otherwise not be on the screen when MultiTimer was relaunched. The foreground and background colors are shared by the MultiTimer windows. These colors are set using the Configuration dialog (B&W machines cannot set colors) which is accessed from the File menu by the Open Config entry. MultiTimers window state is perserved across launches, however if your machine is turned off and the Watch timer was active then its time will be invalid since it relies on TickCount() which is relative to the instant when the machine was turned on. The Clock window normally shows [HH:MM] and can optionally display [HH:MM:SS] and flash its colons. The Date window can show the calender date in either name format, [Mar 6], or number format, [3 / 6]. Foreign users can replace the 3-letter month abbreviations that I used with 3-letter month abbreviations of their choosing by editing the STR# 200 resource. The Clock and Date window options are also set by the Configuration dialog.
Recapping what we’ve learned so far, MultiTimer uses highly customized windows to display Clock, Date and Watch info. These windows are opened or selected using the File menus New Timer submenu, or by using a menu key equivalent. The front window is closed using the File menus Close xxxx entry or its menu key equivalent. Window colors and the specific Clock and Date options are set using the File menus Open Config entry. The Edit menu is normally disabled and becomes active only when a desk accessory is open in MultiTimers partition and is in front.
*** Using MultiTimers Watch
The Watch function is powerful but like modern digital requires a manual to understand it. Sigh ... Hopefully, after reading this you won’t need the manual! Assuming that the Watch is off and its window closed then the File menus New Timer submenu can open a new Watch window that displays [ 0:00.0], that is zero elapsed time in minutes, seconds and tenths of seconds format. The Watch is started and stopped or restarted and restopped by either hitting the space bar or clicking on the desktop (note that clicking on icons or windows will invoke MultiFinders normal handling of those situations). When the Watch is first started, the Watch window displays the running time (note that after 60 minutes the display automatically changes format to [HH:MM:SS] since tenths of seconds are hardly relevant in that case). When the Watch is stopped, it freezes and displays the elapsed time. The Watch can be reset to 0 by using the File Menus New Timer submenu or by a menu key equivalent when it is stopped! This last point is important since it means that the Watch can be started and its window closed and then re-opened without affecting its timekeeping! This also means that the application itself can be quit and restarted (as long as the machine itself isn’t restarted) and the Watch timekeeping will be accurate (note that a second for the Watch is based upon the assumption that 60 Ticks equals one second. This is strictly speaking not true and it has been empirically determined that 60 Ticks is about 1 +/- 0.004
seconds, so that over a few hours the Watch will gain or lose a few seconds). So far you’ve seen that the Watch can be started and stopped without regard to its window being open or closed (note that the Watch generally needs to be the front window in order to use it functions but that you can read its display at any time, even while in the background).
When the Watch is restarted after being stopped and without being reset then it will start to add new ticks to its elapsed time counter, however the Watch display will continue to show the elapsed time of the instant when it was stopped. Your only indication that the Watch is running is that the colons will rapidly blink. When the Watch is then restopped the display is updated to show the accumulated total elapsed time. This allows you to record the elapsed times if they don’t occur too rapidly in succesion. Recap: when the Watch first starts, it shows running time. When it is stopped, and not reset, it shows the accumulated elapsed times measured while the Watch was on. This is accomplished by hitting the space bar or clicking on the desktop. The Watch is completely reset by the File menus New Timer submenu or a menu key equivalent when the Watch is stopped.
You can get a display of the uptodate accumulated elapsed time by holding down the option key when hitting the space bar or clicking in the desk. For example, if you start the watch and you’d like an interval time without stopping the Watch then simply hold down the option key while hitting the space bar or clicking on the desk and the Watch display will freeze on the instant when that event happened but the Watch will continue to run (i.e. its colons will then blink rapidly). You can repeat this procedure to get updates without stopping the Watch. This is the way to get true interval times.
Finally, if an interval is displayed and the Watch is running (colons blinking) then you can display running time by typing “c” for continue counting or by option-clicking in the Watch window (not on the desktop).
That wasn’t too confusing, was it?
*** MultiTimer Miscellaneous
MultiTimer requires a 64k MultiFinder partition and only uses 32k of it. The extra space is, in part, needed by the color picker dialog and used to effectively support desk accessories.
MultiTimer ships with the Apple Alarm desk accessory already installed inside it. This raises MultiTimers disk space by 5k from 13.5k to 18.5k. The Alarm desk accessory was included because it nicely compliments MultiTimer and provides a means for setting the Clock and Date times and it also provides an Alarm function!
MultiTimer was developed using Think C 4.02 (really neat!) and was derived from a more general timing/scheduling application intended to exploit IAC under system 7.0, being written by:
David K. Hairston
4373 Stanton Ave.
Pittsburgh, PA 15201
Please drop me a line to report any concerns you may have with MultiTimer.
Remember: INIT’s, just say No!
*** Version History
1.0 released 3/15
1.01 released 3/19 - fixes two cosmetic bugs:
1) outline the OK button on configuration dialog.
2) correctly update “.” to “:” on stopwatch after 60 minutes.
these features were inadvertantly dropped in going from 0.9 to 1.0.
1.02 released 3/28 - fixes a color QuickDraw dependency! Previously, a
center rect routine tried to use GetMainDevice() even when color
QuickDraw was not present. MultiTimer has now been tested on